package com.aisile.fastdfs.controller;

import com.aisile.fastdfs.utils.FastDFSClientUtil;
import com.aisile.fastdfs.utils.KODOClientUtils;
import com.aisile.fastdfs.utils.OSSClientUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * @Auther:yry
 * @Date:2024/1/5 0005
 * @VERSON:1.0
 */
@RestController
@RequestMapping("/upload")
public class TestUploadController {

    @Autowired
    private FastDFSClientUtil fastDFSClientUtil;

    @Autowired
    private KODOClientUtils kodoClientUtils;

    @Autowired
    private OSSClientUtils ossClientUtils;


    /**
     * 异步上传  oss
     * @param file
     * @return
     */
    @PostMapping("/oss")
    public String uploadForOss(@RequestPart("file") MultipartFile file) throws IOException {
        // 1. 存fastdfs
        String url =  ossClientUtils.upload(file);
        // 2. 存数据库（返回地址）
        System.out.println(file.getOriginalFilename());
        // "http://192.168.211.132:8080" 是http访问的地址  是nginx的地址
        return url;
    }

    /**
     * 异步上传  kodo
     * @param file
     * @return
     */
    @PostMapping("/kodo")
    public String uploadforKodo(@RequestPart("file") MultipartFile file) throws IOException {

        // 获取用户id
        // md5 加密上传的文件
        // 和数据库对比   count
        //  >0  如果重复直接return
        //  <=0 上传

        // 1. 存fastdfs
        String url =  kodoClientUtils.upload(file);
        // 2. 存数据库（返回地址）
        System.out.println(file.getOriginalFilename());
        // "http://192.168.211.132:8080" 是http访问的地址  是nginx的地址
        return url;
    }

    /**
     * 异步上传  fastdfs
     * @param file
     * @return
     */
    @PostMapping("/fastdfs")
    public String upload(@RequestPart("file") MultipartFile file) throws IOException {
        // 1. 存fastdfs
        String url =  fastDFSClientUtil.uploadFile(file);
        // 2. 存数据库（返回地址）
        System.out.println(file.getOriginalFilename());
        // "http://192.168.211.132:8080" 是http访问的地址  是nginx的地址
        return "http://192.168.211.132:8080/"+url;
    }


    @DeleteMapping
    public String delete(){
        // 用户点击删除素材  1. 先根据id查询mysql2.先删除Fastfs中 3.在删除Mysql中
        fastDFSClientUtil.delFile("group1/M00/00/00/wKjThGWXX4OAEdHLAAB4s2aFiRk443.jpg");
        return "ok";
    }
    @DeleteMapping("/kodo")
    public String deleteForKodo(){
        // 用户点击删除素材  1. 先根据id查询mysql2.先删除Fastfs中 3.在删除Mysql中
        kodoClientUtils.delete("teacher/83d8ee4c858440f690d96f03269937e1.jpg");
        return "ok";
    }

}
